In many software applications, the orientation of the user's head can be used as an effective and natural form of input. For example, in 3D games, virtual reality environments, and visualizations, the orientation of the head can be used to control the orientation of the camera viewing the scene, giving the user more control over the experience, heightening immersion, and freeing the user's hands from controlling the camera by some other means, such as a joystick, mouse, or hat switch, for other tasks. This is popular, for example, among flight and driving simulator fans, enabling them to look around a virtual cockpit and quickly scan the environment.
In the past, these types of head orientation tracking systems have often taken one of two approaches. Some require the addition of specialized hardware to the user to enable tracking, such as reflectors or active infrared LEDs attached to the user's head or hat. This affects user comfort, requires preparation for the tracking experience, and requires either batteries or a cable to power the LEDs. Methods of tracking the user without hardware augmentation require far more complex and computationally expensive algorithms to process camera information and determine head orientation. When this information comes from an RGB (i.e., color) camera, as is the case with many current implementations, the quality of the results may be affected by lighting. Many of the algorithms described in academic literature on the topic require significant processing resources, and so would be impractical for many applications.